package mybox.engine.rundfeder;

import mybox.engine.Figur;
import mybox.engine.File4Qcad;
import mybox.engine.QVector;
import mybox.engine.RandLinieOO;
import mybox.engine.Rectangle;

	
	public class RundWrapInnen implements Figur{
		
		
		File4Qcad file4qcad;
		QVector start;	
		
		double laenge;
		double glattLaenge;
		double breite; 
		double glattBreite;
		double hoehe;
		
		double seitenAbschluss;
		double federDicke;
		int anzahlSektoren;
		
		double materialDicke;
		double zinkungsFaktor;
		double laserBreite;
		
		double obenRand=1;
		double untenRand=2;
		
		Rundfeder[] rundFeder = new Rundfeder[4];
		Rectangle[] onRect = new Rectangle[4];
		
		RandLinieOO[] perforationObenL = new RandLinieOO[4]; 
		RandLinieOO[] perforationUntenL = new RandLinieOO[4]; 
		RandLinieOO[] perforationObenR = new RandLinieOO[4]; 
		RandLinieOO[] perforationUntenR = new RandLinieOO[4]; 
		
		public RundWrapInnen(
				File4Qcad file4qcad, 
				QVector start, 
				double laenge, 
				double breite, 
				double hoehe,			
				double seitenAbschluss,
				double federDicke,
				int anzahlSektoren,
				
				double materialDicke,			
				double laserBreite,
				double zinkungsFaktor
				) {
			this.file4qcad=file4qcad;
			this.start=start;
			this.laenge=laenge;
			this.glattLaenge=RundTopInnen.glattValue(laenge, federDicke*2, anzahlSektoren);		
			this.breite=breite;
			this.glattBreite=RundTopInnen.glattValue(breite, federDicke*2, anzahlSektoren);
			this.hoehe=hoehe;
			this.seitenAbschluss=seitenAbschluss;
			this.federDicke=federDicke;
			this.anzahlSektoren=anzahlSektoren;
			this.materialDicke=materialDicke;
			this.zinkungsFaktor=zinkungsFaktor;
			this.laserBreite=laserBreite;
		}
		
		
		

		@Override
		public void draw() {
			
			rundFeder[0] = new Rundfeder(file4qcad, start, hoehe,seitenAbschluss,federDicke,anzahlSektoren);
					
			onRect[0] = new Rectangle(file4qcad,
					new QVector(rundFeder[0].linksObenStart.x-glattLaenge+federDicke,rundFeder[0].linksObenStart.y-hoehe),
					new QVector(rundFeder[0].rechtsUntenEnd.x+glattBreite,rundFeder[0].rechtsUntenEnd.y+hoehe)
					);
			
		
			perforationObenL[0] = new RandLinieOO(
					file4qcad,
					new QVector(rundFeder[0].linksObenStart.x-glattLaenge+federDicke,
							rundFeder[0].linksObenStart.y-obenRand-materialDicke),
					0.0,
					glattLaenge,			
					materialDicke,
					zinkungsFaktor,
					laserBreite,
					false,//=isGlatt,
					false,//=isRand,
					true,//=isFemale,
					false//=hasRandVerkuerzt				
					);
			
			perforationUntenL[0] = new RandLinieOO(
					file4qcad,
					new QVector(rundFeder[0].linksObenStart.x-glattLaenge+federDicke,
							rundFeder[0].linksObenStart.y+untenRand-hoehe),
					0.0,
					glattLaenge,			
					materialDicke,
					zinkungsFaktor,
					laserBreite,
					false,//=isGlatt,
					false,//=isRand,
					true,//=isFemale,
					false//=hasRandVerkuerzt				
					);
			
			perforationObenR[0] = new RandLinieOO(
					file4qcad,
					new QVector(rundFeder[0].rechtsUntenEnd.x,
							rundFeder[0].rechtsUntenEnd.y+hoehe-obenRand-materialDicke),
					0.0,
					glattBreite,			
					materialDicke,
					zinkungsFaktor,
					laserBreite,
					false,//=isGlatt,
					false,//=isRand,
					true,//=isFemale,
					false//=hasRandVerkuerzt				
					);
			
			perforationUntenR[0] = new RandLinieOO(
					file4qcad,
					new QVector(rundFeder[0].rechtsUntenEnd.x,
							rundFeder[0].rechtsUntenEnd.y+untenRand),
					0.0,
					glattBreite,			
					materialDicke,
					zinkungsFaktor,
					laserBreite,
					false,//=isGlatt,
					false,//=isRand,
					true,//=isFemale,
					false//=hasRandVerkuerzt				
					);
			
			rundFeder[0].draw();
			onRect[0].draw();
			perforationObenL[0].draw();
			perforationUntenL[0].draw();
			perforationObenR[0].draw();
			perforationUntenR[0].draw();

			
		}

}
